#include <iostream>
#include <sys/time.h>
#include <time.h>
#include <signal.h>
#include <unistd.h>

using std::cout;
using std::endl;

void handle_sig(int signum)
{
    time_t now;
    time(&now);
    printf("%s", ctime(&now));
}

// 实用计时器是计算程序在用户态和内核态被执行的时长和
int main(int args, char *argv[])
{
    signal(SIGPROF, handle_sig);
    struct itimerval itv{};
    itv.it_value.tv_sec = 3; // 设置初始间隔时间
    itv.it_interval.tv_sec = 2; // 设置循环间隔时间

    handle_sig(SIGPROF);
    setitimer(ITIMER_PROF, &itv, nullptr);
    sleep(3);
    while(1);
    return 0;
}